package com.escope.casemanager.scheduling;


import com.escope.casemanager.model.CaseExample;
import com.escope.casemanager.model.SysMessage;
import com.escope.casemanager.service.CaseExampleService;
import com.escope.casemanager.service.CaseShareService;
import com.escope.casemanager.service.SysMessageService;
import com.escope.casemanager.uti.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.Calendar;
import java.util.List;


/**
 * 定时器任务  暂时停用, 目前在系统参数更新后 进行了内存数据更新
 * 吕伟林
 * 2021/7/1
 */
@Component
@Slf4j
public class ScheduingTasks {
    @Autowired
    private CaseExampleService caseExampleService;
    @Autowired
    private SysMessageService sysMessageService;

    /**
     * @Auther  吕伟林
     * @Des 刷新系统参数设置
     * @Date 2021/7/1 14:21
     */
    @Scheduled(cron="0 0 0 * * ?")
    // @Scheduled(cron="0/5 * * * * ?")
    public void checkCaseTime() {
        List<CaseExample> list =  caseExampleService.findExpire();//获取过期或者即将过期的案例
        for(CaseExample ce : list){
            SysMessage message = new SysMessage();
            message.setType("1"); // 地图到期提示
            if(DateUtil.getCurTime().getTime().compareTo(ce.getMapEndTime()) > 0){
                ce.setStatus("2"); //案例地图已过期
                message.setMsg(ce.getName()+" 案例使用的地图已到期, 请注意处理.");
            }else {
                ce.setStatus("1"); //案例地图即将到期
                Calendar c1 = Calendar.getInstance();
                c1.setTime(ce.getMapEndTime());

                Calendar c2 = DateUtil.getCurTime();
                Long starTime=c1.getTimeInMillis();
                Long endTime=c2.getTimeInMillis();
                Long num=endTime-starTime;
                message.setMsg(ce.getName()+" 案例使用的地图还有"+ num/24/60/60/1000 +"日到期, 请注意处理.");
            }
            caseExampleService.update(ce);
            sysMessageService.saveSysMessage(message);
        }
    }
}
